package com.liu.tools.conf;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.liu.tools.StrUtil;


/**
 * @DateTime 2014年12月10日 上午10:14:54
 * @Company 华视传媒
 * @Author 刘兴密
 * @QQ 63972012
 * @Desc 全局配置文件根目录路径
 */
public class LocalConfig {
	
    private static Logger log = LoggerFactory.getLogger(LocalConfig.class);
    
    /** 全局配置文件 */
    
	public static String configPath = new LocalConfig().getConfigPath();
	
	/**
	 * @DateTime 2014年12月10日 上午10:16:42
	 * @Author 刘兴密
	 * @QQ 63972012
	 * @Desc 加载全局配置文件
	 * @return
	 * String
	 */
	public String getConfigPath(){
		
	    InputStream is = null;
	    InputStreamReader reader = null;
	    
	    try{
	        log.info("load LocalProperties Start========================================");

	         is = getClass().getResourceAsStream("/local.properties");

	        if (is != null){
	            log.info("load LocalProperties Success end ========================================");
	        } else {
	            log.info("no load LocalProperties  end,  config path be defaulted.========================================");
	            configPath = this.getClass().getClassLoader().getResource("").getPath();
	            return configPath.substring(0,configPath.length() - 1); 	        	
	        }

	        reader = new InputStreamReader(is, "UTF-8");
	        Properties localProps = new Properties();
	        localProps.load(reader);
	        String dir = localProps.getProperty("config.dir");
	        if(StrUtil.isNull(dir)){
	        	log.info("no load LocalProperties  end,  config path be defaulted.========================================");
	            configPath = this.getClass().getClassLoader().getResource("").getPath();
	            return configPath.substring(0,configPath.length() - 1); 
	        }
	        return localProps.getProperty("config.dir");
	    } catch (Exception e) {
	        log.error("Exception", e);
	        return "";
	    } finally {
	        if (is != null){
	            try{
	                is.close();
	                is = null;
	            } catch (Exception e) {
	                log.error("Exception", e);
	            }
	        } 
	        if (reader != null) {
	            try {
	                reader.close();
	                reader = null;
	            } catch (Exception e) {
	                log.error("Exception", e);
	            }
	        }
	    }
	}

}

